#include <iostream>
#include <stdio.h>
#include "mycalc.h"
#include "xgwlog.h"
#include "event.h"
#include "eventObserver.h"
#include "eventHandle.h"
#include "msgproc.h"
#include "msgqueue.h"
#include "cpu.h"
#include <stdlib.h>
#include<unistd.h>
//#include "company.h"
#include "stringop.h"
#include "common.h"
#include "main.h"
/*
 *
 */



#define log(module,buf,_VA_ARGS_,...) Xgwlog::getInstance()->print(module,buf,_VA_ARGS_)
#define log2(level,format,...)\
do{\
fprintf(stderr,"%s@%s@%s,%d",format \
level,__func__,__FILE__,__LINE__,##__VA_ARGS__);\
}while(0)


struct Data
{
	Data(){std::cout<<"Data gou zao"<<std::endl;};
	void destory()
	{
		std::cout<<"Data Destory"<<std::endl;
	}
	void print()
	{
		std::cout<<"flag is "<<flag<<std::endl;
	}
	int flag;
};
#define N 3;
using namespace std;
int main()
{
	const int tt = N;
	Mycalc cal;
	Maybe < Data >info;
	Data rhs ;
	rhs.flag = 11;
	info = rhs;
	info.getref().print();

	int a[]={1,3,2,5,4};
	const int SIZE = sizeof(a)/sizeof(a[0]);
	//std::cout<<SIZE<<std::endl;
	//cal.sort_low2high(a,SIZE);
	Proc *p = new Proc();
	p->run(new Run2());

	//Branch *branch1 = new Branch("sb","manager",10000);
	//print(10);    
    return 0;
}
